[Mobile Hacking 9] 민감 정보가 메모리에 저장되는 경우

[Mobile Hacking 9] 민감 정보가 메모리에 저장되는 경우

Lecture
Security
태그
mobile hacking
security
public
완성
Y
생성일
Mar 18, 2024 05:34 AM
LectureName
Mobile Hacking (Android- checklist)

1. 메모리 내 민감한 정보 저장


1.1 안드로이드 메모리

안드로이드의 메모리 구조를 이해하려면 Dalvik과 ART (Android Runtime)의 역할을 이해하는 것이 중요합니다.
Dalvik
Dalvik은 안드로이드 운영 체제의 이전 버전에서 사용되었던 가상 머신입니다. Dalvik 가상 머신은 안드로이드 애플리케이션의 실행을 담당하고, .dex(Dalvik Executable) 형식의 바이트 코드를 실행합니다. 각 애플리케이션은 Dalvik 가상 머신에서 독립적인 프로세스로 실행됩니다. Dalvik은 애플리케이션을 실행하는 데 필요한 메모리를 관리합니다.
 
ART (Android Runtime)
ART는 안드로이드 5.0 (롤리팝)부터 기본 런타임으로 도입된 실행 환경입니다. Dalvik과는 달리, ART는 AOT (Ahead-Of-Time) 컴파일러를 사용하여 .dex 파일을 미리 컴파일하여 기기의 네이티브 코드로 변환합니다. 이렇게 함으로써 애플리케이션의 실행 속도를 향상시키고 배터리 수명을 연장할 수 있습니다. ART는 Dalvik보다 메모리 사용을 줄이고 성능을 개선하는데 도움이 됩니다.
 
 

1.2 민감한 데이터의 저장

힙 메모리
실행 중인 안드로이드 어플리케이션의 데이터는 주로 힙(Heap) 메모리에 저장됩니다. 힙은 프로그램 실행 중에 동적으로 할당되고 해제되는 메모리 영역입니다. 대부분의 객체 및 데이터 구조는 힙 메모리에 저장됩니다.
 
민감한 데이터
민감한 데이터로는 유저가 어플리케이션을 사용하면서 입력한 데이터, 저장된 데이터를 불러와 메모리에 적재할 경우 등등의 노출이 될 시 문제가 될 수 있는 데이터들을 의미합니다.
 
 

1.3 취약점 진단

PID 식별
➡️ 먼저 어플리케이션의 PID를 식별하여야 합니다.
# cmd adb shell # android shell ps -ef | grep <어플리케이션 명>
 
동작 이후 힙 덤프
➡️ 식별된 PID로 힙 덤프(heap dump)를 수행하고, 로컬(PC)로 가져옵니다.
am dumpheap <PID> <write가 가능한 경로> (ex. /data/local/tmp/) exit # cmd adb pull <dump뜬 안드로이드 경로> <저장할 경로>
 
덤프파일 추출
➡️ 이때 다운로드 되는 파일은 hprof 파일로 추출되는데, 이를 MAT와 같은 프로그램으로 분석하기 위해 변환 합니다.
hprof-conv <dump파일>
  • hprof-conv는 안드로이드 SDK 에 존재합니다.
 
분석
추출된 HEX파일을 분석합니다.
 
 

2. 실습


2.1 Insecurebankv2

모바일 기기에서 대상 앱을 실행시키고, 메모리 덤프를 하여 해당 덤프 파일에서 어떤 데이터를 추출할 수 있는지 확인해 본다.
 

2.2 서비스 이용 및 메모리 덤프

서비스 이용
로그인
로그인
 
송금
송금
메모리 덤프
notion image
  • 앞서 설명한 과정대로 Insecurebankv2 앱을 실행하고, 기능을 사용한 뒤에 메모리 덤프를 수행하고 추출하였습니다.
  • 이제 여기서 정보들을 획득하면 됩니다.
 
 

2.3 민감 정보 획득

사용자 비밀번호 획득
notion image
  • 로그인 시 사용했던 비밀번호를 찾을 수 있습니다.
 
송금 정보 획득
notion image
  • 누가 누구한테 얼마를 보냈는지 알 수 있습니다.
 
 
 

3. 대응방안


  • E2E (END to END) 암호화 적용을 권고합니다.
  • 사용자가 키보드로 개인정보를 입력하는 순간부터 암호화되어 데이터를 전송하여 수령받는 서버까지 암호가 되는 형태로 운영하여야 합니다.
  • 공격자가 데이터를 획득해도, 암호화된 데이터를 식별할 수 없어야 합니다.